package homework.day02.extend;

import java.util.Scanner;

/**
 * 判断素数
 * 求前n个数当中的所有素数。
 *
 * @since 21:37
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class PrimeNumDemo {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个正整数n: ");
        int n = sc.nextInt();
        int count = 0;
        // 从2开始计算
        for (int i = 2; i < n; i++) {
            if (isPrimeNum(i)) {
                System.out.println(i + "是一个素数");
                count++;
            }
        }
        System.out.println(n + "以内，一共有" + count + "个素数。");
    }

    private static boolean isPrimeNum(int num) {
        // 用一个数分别去除2到这个数的开平方，如果能被整除，则表明此数不是素数，反之是素数。
        for (int i = 2; i <= Math.sqrt(num); i++) {
            if ((num % i) == 0) {
                // 能够整除，说明不是素数
                return false;
            }
        }
        // 代码执行到这里，说明它是一个素数
        return true;
    }
}
